home *** CD-ROM | disk | FTP | other *** search
/ Inside Mac Games Volume 7 #1 / IMG Vol 7-1.iso / Shareware / EV Override Collection / EV Objects' Formulas 7 < prev    next >
Text File  |  1998-05-17  |  17KB  |  349 lines

  1.                EV Objects' Formulas For ResEdit
  2.                Seventh Revision: 15/05/1997
  3.  
  4.  
  5. ©1997-98 DYNA Systems                                  dynasys@worldnet.fr
  6.                                                       http://services.worldnet.net/dynasys
  7.  
  8. Made with the help of Pontus Ilbring              poliruir@oden.se
  9.  
  10.  
  11. Escape Velocity ©1996 Ambrosia Software, Inc.
  12. Override ©1996-98 Ambrosia Software, Inc.
  13. ResEdit © Apple Computer, Inc.
  14.  
  15.  
  16. INTRO
  17.  
  18. The purpose of this document is to provide the formulas and links to create plug-ins for Escape Velocity or Override using ResEdit and the EV Bible by Matt Burch. The EV Bible can be found at:                                    
  19.                          ftp://ftp.AmbrosiaSw.com/beta/EV_Bible.hqx
  20.                          http://www.escape-velocity.com/
  21.  
  22. You can find different ways to define these formulas, this document only contains our way!
  23. As usual, this document is provided as is, without any expressed or implied warranties.  While every effort has been taken to ensure the accuracy of the information contained in this document, the authors assume no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein.
  24.  
  25. Besides, if you are just starting to edit and create an EV plug, it would be a good idea to read first the EV Plug-in FAQ.generic by "Cajun" David Richard
  26.                http://www.ambrosiasw.com/Ambrosia_Products/Add_Ons/EV_AddOns.html
  27.  
  28.  
  29. FIRST STEP
  30.  
  31. Be sure you have copied the 'TMPL' resources for ResEdit in your plug-in or in the ResEdit Preferences file! These resources are provided with the EV Bible.
  32.  
  33. Note: some EV templates are defined as rectangles. So don't be surprised if ResEdit displays sometimes an error message talking about "Invalid rectangle...". This error is not a problem for EV: just hit 'Yes', several times if necessary.
  34.  
  35.  
  36. FORMULAS FOR A NEW SHIP
  37.  
  38. • Create a 'ship' resource:
  39.                154 ≤ id#NewShip ≤ 190
  40.     Override : 175 ≤ id#NewShip ≤ 190
  41.  
  42. • Calculate the 'position' of your new ship like this:
  43.                posShip = id#NewShip - 128
  44.  
  45. • Create 6 'PICT' resources:
  46.      1. a 36 sprite frame grid (width and height must be a multiple of 8)
  47.                                                     1050 ≤ id#ShipSprites ≤ 1998   (should be an even number).     
  48. Or in a safer way (EV only):       id#ShipSprites = posShip*2 + 998
  49.      2. its corresponding mask (ie a picture where all parts of the ship are white and the background black)
  50.                id#ShipMask = id#ShipSprites + 1
  51.      3. a Target Display PICT: 128 x 64 pixels
  52.                  id#TargetPICT = 3000 + posShip
  53.      4. a ShipYard Selection PICT (shown when the player selects this ship): 100 x 100 pixels
  54.                id#ShipYardPICT = 5000 + posShip
  55.      5. a ShipYard thumbnail (which is a version of the ShipyardPict that's been scaled to 32 x 32 pixels)
  56.                id#ThumbnailPICT = 5101 + posShip
  57.      6. a Communication Dialog PICT: 100 x 100 pixels
  58.                idCommPICT = 5300 + posShip
  59.  
  60. • Create a 'spin' resource which contains the ids of your Sprite and Mask PICTs:
  61.                id#ShipSpin = id#NewShip
  62.      Then, enter the id#ShipSprite and id#ShipMask values in the corresponding fields of this 'spin' resource.
  63.  
  64. • Create 4 'STR ' resources:
  65.      1. Ship's name: a short version of the ship's name (15 characters max like "Shuttlecraft", "Confed Gunboat", "Bulk Freighter"...)
  66.                id#ShipShortName = 3600 + posShip
  67.      2. Ship's long name (appears in a dialog when the ship is bought: ex. "Rendelli StarDrive 805R cargo shuttle")
  68.                id#ShipFullName = 3700 + posShip
  69.      3. Ship's shortened name for communication display (keep this at 14
  70. characters, ok? Remove all government stuff and most classifications, "Confed Gunboat" becomes "Gunboat", "Luxury Liner" becomes "Liner", "Light
  71. Freighter" becomes "Lt. Freighter" and "Escort Carrier" becomes "Carrier").
  72.                id#ShipCommName = 3800 + posShip
  73.      4. Independent ship's name (if your ship can be owned by any government). Keep this even shorter, do as with the above and remove even more "Lt.Freighter" becomes "Freighter". This must be a lone word!
  74.                id#IndependentShipName = 3900 + posShip
  75.  
  76. • Create 2 'desc' resources:
  77.      1. Ship's description when the ship is bought
  78.                id#ShipBuyDesc = 2000 + posShip
  79.      2. Ship's description (shown in the Bar when the player is offered to hire the ship as an escort)
  80.                id#ShipHireDesc = 2100 + posShip
  81.  
  82.  
  83. FORMULAS FOR A NEW OUTFIT
  84.  
  85. • Create a 'outf' resource:
  86.                182 ≤ id#NewOutf ≤ 255
  87.     Override : 202 ≤ id#NewOutf ≤ 255
  88.  
  89. • Calculate the 'position' of your new outfit like this:
  90.                posOutf = id#YourNewOutf - 128
  91.  
  92. • Create 2 'PICT' resources:
  93.      1.  a normal PICT of the item (shown when the player selects this item in the Outfit Section): 100 x 100 pixels
  94.                id#SelectOuftPICT = 6000 + posOutf
  95.      2. an Outfit Section Selection PICT (or thumbnail) which a is reduced view of the above: 32 x 32 pixels
  96.                id#OuftThumbnail = 6101 + posOutf
  97.  
  98. • Create 3 'STR ' resources:
  99.      1. The name of the outfit (keep this ≤ 15 or Hector'll mess you up!)
  100.                id#OutfName = 3000 + posOutf
  101.      2. Lowercase Outfit's name (the same as above but in lowercase)
  102.                id#OutfLCName = 3200 + posOutf
  103.      3. Plural outfit name (lowercase, plural and ≤ 20 characters.
  104.                id#OutfPlural = 3400 + posOutf
  105.  
  106. • Create 1 'desc' resource:
  107.      Outfit's description (displayed when the player selects this item in the Outfit Section)
  108.                id#OutfDesc = 3000 + posOutf
  109.      Note: if this new outfit is a weapon, see below.
  110.  
  111.  
  112. FORMULAS FOR A NEW WEAPON
  113.  
  114. • Create a new 'weap' resource:
  115.                153 ≤ id#NewWeapon ≤ 190
  116.     Override : 163 ≤ id#NewWeapon ≤ 190
  117.      Then, enter the id#NewWeapon value in the 'ModVal' field of the linked outfit.
  118.  
  119. • Calculate the 'position' of your new weapon like this:
  120.                posWeap = id#NewWeapon - 128
  121.  
  122. • If your weapon sends projectile (bolts, bullets, darts, missiles...), you will need to create:
  123.      2 'PICT' resources:
  124.           1. a 36 sprite frame grid (width and height must be a multiple of 8)
  125.                          232 ≤ id#ProjectileSprites ≤ 398   (should be an even number)
  126. Or in a safer way (EV only):     id#ProjectileSprites = posWeap*2 + 182
  127.           2. its corresponding mask
  128.                id#ProjectileMask = id#ProjectileSprites + 1
  129.      1 'spin'  resource:
  130.                214 ≤ id#WeapSpin ≤ 262
  131. Or in a safer way (EV only):             id#WeapSpin = posWeap + 189
  132.  
  133.      Then, enter the id#ProjectileSprites and id#ProjectileSprites values in the corresponding fields of this 'spin' resource.
  134.      Also enter the result of (id#WeapSpin - 200) in the 'Graphic' field of the 'weap' resource.
  135.  
  136. • If you want to play a new sound when this weapon is used:
  137.      Paste a new sound ('snd ' resource) formatted to 8 bits at 11.127 kHz without compression.
  138.                218 ≤ id#Sound ≤ 263   AND  id#Sound ≠ 223
  139.      Then, enter the result of (id#Sound - 200 ) in the 'Sound'  field of the 'weap' resource.
  140.  
  141. FORMULAS FOR A NEW SYSTEM
  142.  
  143. • Create a 'syst' resource:
  144.                236 ≤ id#NewSystem ≤ 1028
  145.     Override : 439 ≤ id#NewSystem ≤ 1028
  146.  
  147.      Of course, you will have to link this new system with others  (OK! You don't have to, but you do want people to see your work, right?):
  148.  
  149.      Enter the id# of the linked systems in the 'Con1' to 'Con4' and 'Con6' to 'Con16' fields of the new system (don't use more than 7 links, pleeeaaase!). If your system is to be linked with a system that came with EV, make a copy of that system and put it in your plug.
  150.      Enter the id#NewSystem  value into a 'ConX' field in each of the systems your new system if linked to.
  151.  
  152. • If you want a message to be displayed each time the player enters this new system (this message is displayed at the bottom of the screen, like in Ruby):
  153.           1. Enter an integer between 2 and 1500 in the 'Message' field of your new system. May be it would be a good idea to set this value to
  154.                MsgNumber = id#NewSystem - 128
  155.           2. Create a 'STR ' resource as:
  156.                id#SystemMsgStr = 999 + MsgNumber
  157.  
  158. FORMULAS FOR A NEW SPOB (space object: planet or station)
  159.  
  160. • Create a 'spob' resource:
  161.                235 ≤ id#NewSpob ≤ 1627
  162.     Override : 405 ≤ id#NewSpob ≤ 1627
  163.      NOTE: If you plan to have a new graphic for this spob, it's better to define its ID like this (EV only):
  164.      EV only : 235 ≤ id#NewSpob ≤ 264
  165.  
  166.      Enter the id#NewSpob value in the 'Nav1' to 'Nav4' fields of the system where the spob is located.
  167.  
  168. • Calculate the 'position' of your new spob like this:
  169.                posSpob = id#NewSpob - 128
  170.  
  171. • Create a 'desc' resource:
  172.                id#SpobDesc = id#NewSpob
  173.  
  174. • If you want a new picture to be displayed when the player lands on this planet:
  175.           1. Create a 'PICT' resource (333 x 271 pixels):
  176.                id#LandPICT = 11000 + (id#NewSpob - 128)
  177.           2. Enter the id#LandPICT value in the 'CustPicID' field of the 'spob' resource.
  178.  
  179. • If you want a new sound to be played when the player lands on this planet:
  180.           1. Paste a new sound ('snd ' resource) formatted to 8 bits at 11.127 kHz without compression.
  181.                10003 ≤ id#LandSound
  182.           2. Enter the id#LandSound value in the 'CustSndID' field of the 'spob' resource.
  183.  
  184. • If your planet has a bar:
  185.      Create a 'desc' resource:
  186.                id#BarDesc = 10000 + (id#NewSpob - 128)
  187.  
  188. • If you want to have a new graphic for your spob:
  189.      Create 2 'PICT' resources:
  190.           1. a PICT for the spob.
  191. If your spob is a big planet, use a 80 x 75 pixels graphic. For a station, use a 48 x 48 pixels graphic. If it is a moon, use a 24 x 24 pixels graphic (note that these dimensions are not compulsory, just standard!).
  192.                           2066 ≤ id#SpobSprite ≤ 2998
  193. Or in a safer way (EV only):      id#SpobSprite = posSpob*2 + 1852
  194.           2. a corresponding mask.
  195.                id#SpobMask = id#SpobSprite + 1
  196.  
  197.      Create 1 'spin' resource:
  198.                           336 ≤ id#SpinSpob ≤ 363
  199. Or in a safer way (EV only):      id#SpinSpob = posSpob + 237
  200. Enter the id#SpobSprite and id#SpobMask values in the corresponding fields of this 'spin' resource. Then, enter the value of id#SpinSpob - 300 into the 'Type' field in the 'spob' resource.
  201.  
  202.      Create a 'STR ' resource:
  203.                id#SpobStr = id#SpinSpob + 6700
  204. This 'STR ' resource contains a string that defines the spob's type. Something like "Class M planet".  See appendix II for more information about stellar types.
  205.  
  206. FORMULAS FOR A NEW GOVERNMENT
  207.  
  208. • Create 1 'govt' resource:
  209.                154 ≤ id#NewGovt ≤ 255
  210.     Override : 177 ≤ id#NewGovt ≤ 255
  211.  
  212. • Calculate the 'position' of your new government :
  213.                posGovt = id#NewGovt - 128
  214.  
  215. • Create 2 'STR ' resources:
  216.           1. Shortened (8 characters are max) goverment's name for target display (transponder code):
  217.                id#Transponder = 4000 + posGovt
  218.           2. Goverment's name for communication dialog (Matt Burch uses a max of 9 characters but it should be OK to use 10):
  219.                id#CommNameGovt = 4200 + posGovt
  220.  
  221. Then, enter the id#NewGovt value in:
  222.           1. The 'Govt' field of all the 'syst' resources owned by this new government.
  223.           2. The 'InherentGovt' field of all 'ship' resources that are owned only by this government (ex. 'Confed' for gunboats).
  224.  
  225. • Now, if you want your new government to have specific greetings for Comm dialog:
  226. (so the ships will respond particular sentences when you communicate with them)
  227.            Create 10 'STR ' resources numbered like this:
  228.                id#STRcomm1 = (posGovt * 10) + 10010
  229.                id#STRcomm2 = (posGovt * 10) + 10011
  230.                id#STRcomm3 = (posGovt * 10) + 10012  etc...
  231.  
  232. The first five STRs will be used for ships with an AI of 1 or 2 (traders and freighters that is). The other five will be used for AIs 3 & 4 (fighters and warships).
  233.  
  234.  
  235. FORMULAS FOR A NEW NEBULA
  236.  
  237. • Create 1 'nebu' resource:
  238.                130 ≤ id#NewNebu ≤ 131
  239.     Override : id#NewNebu = 131
  240.  
  241. • Calculate the 'position' of your new nebula like this:
  242.                posNebu = id#NewNebu - 128
  243.  
  244. • Create 3 'PICT' resources (for the Map-zooming):
  245.           1. a PICT of the nebula with an even width and height (normal zoom):
  246.                id#PICTNebuNormal = 9501 + (3 * posNebu)
  247.           2. a PICT of the nebula twice the size of the normal (zoom in):
  248.                id#PICTNebuBig = 9502 + (3 * posNebu)
  249.           3. a PICT of the nebula half the size of the normal (zoom out):
  250.                id#PICTNebuSmall = 9500 + (3 * posNebu)
  251.  
  252. Then, enter the width and height size of the normal PICT into their respective fields XSize and YSize.
  253. Also enter the x and y coordinates of the top left of the nebula into their respective fields XPos and YPos.
  254. It is best if you leave half an inch or so of black space around the nebula. Not only will this make cropping easier but the nebula will also be spotted sligthly before you enter it.
  255.  
  256. Don't forget to write the name of the nebula (or whatever it is) on the graphics.
  257.  
  258.  
  259. FORMULAS FOR A NEW PERSONALITY
  260.  
  261. • Create 1 'pers' resource:
  262.                346 ≤ id#pers ≤ 637
  263.  
  264. • If you want your new personality to have a new comm quote
  265. (so this personality will respond a new sentence when you communicate with him):
  266.               Create 1 'STR ' resource:
  267.                12001 ≤ id#StrComm ≤ 12511
  268.  
  269. Enter the value of (id#StrComm - 12000) into the "CommQuote" field of the new 'pers' resource.
  270. If you don't create this new 'STR ' resource, you can fill the "CommQuote" field with an index number of a standard entry in 'STR#' resource 7100 (see EV Bible).
  271.  
  272. • If you want your new personality to have a specific hail quote
  273. (so this personality will send a particular message at the bottom of the screen (i.e. over the radio):
  274.               Create 1 'STR ' resource:
  275.                5000 ≤ id#StrHail ≤ 5511
  276.  
  277. Enter the value of (id#StrHail - 4999) into the "HailQuote" field of the new 'pers' resource.
  278. If you don't create this new 'STR ' resource, you can fill the "HailQuote" field with an index number of a standard entry in 'STR#' resource 7101 (see EV Bible).
  279.  
  280.  
  281. FORMULAS FOR A NEW CARGO TYPE (for missions)
  282.  
  283. • Create 3 'STR ' resources:
  284.           1. Generic cargo name :
  285.                9024 ≤ id#CargoName ≤ 9063
  286.           2. Lowercase cargo name (19 characters are the maximum if the cargo can be taken from a ship when boarding, otherwise 21):
  287.                id#LCCargo = id#CargoName + 100
  288.           3. Cargo abbreviation for status display (very short string, 8 characters are max):
  289.                id#AbbrevCargo = id#CargoName + 200
  290.  
  291.  
  292. FORMULA FOR A NEW JUNK
  293.  
  294. • Create a 'junk' resource:
  295.                147 ≤ id#NewJunk ≤ 192
  296.  
  297. • Create 2 'STR ' resources:
  298.  
  299.           1. An abbreviated version of the junk name. Max 8 characters.
  300.                id#ShortJunk = 7872 + id#NewJunk
  301.           2. A lowercase version of the junk name.
  302.                id#LCJunk = 8072 + id#NewJunk
  303.  
  304. The commodity will be sold at a 20% discount on the sold at spob and at a price increase of 25% at the bought at spob.
  305.  
  306.  
  307. APPENDIX I: Hex Strings
  308.  
  309. Example for a new space object:
  310.  
  311.      New spob characteristics          Value provided by the EV Bible
  312.      Can lan/dock here           00000001
  313.      Has commodity exchange      00000002
  314.      Can outfit ship here        00000004
  315.      Can buy ships here          00000008
  316.      Stellar is a station        00000010
  317.      Low industrial prices       01000000
  318.      High medical prices         00400000
  319.  
  320. Now, add the numbers in the corresponding columns (like in normal addition) but when the result of a column is greater than 9, replace this result by the following characters:
  321.      10 = A     11 = B     12 = C     13 = D     14 = E     15 = F
  322. So, in your example, we have now:          0140001F
  323.  
  324. Remember that any single column has a maximum value of 15, not 9. If you find a value greater than 15, check your characteristics!
  325.  
  326.  
  327. APPENDIX II: Spob types
  328.  
  329.      M = Mixture? If your planet has about the same amount of land and water.
  330.      W = Water. If your planet has more water than land.
  331.      K = ???? If the world is dominated by land.
  332.      D = Desert. If your planet is totaly dominated by land and is supposed to be very hot, or Dead if your planet is just a HUGE rock
  333.      F = Frozen. If your planet is covered with ice.
  334.      T = ???? If your planet is one of those purple-green things.
  335.      G = Gas. If your planet is like Clotho II. Can be red, green and blue.
  336.      E = No idea. If your planet is really hot or just plain red.
  337.      R = Ring. If there are one or several rings around your planet.
  338.  
  339. Moons are treated the same way. You just write "(Class X moon)" instead.
  340.  
  341. Stations are treated a bit different. You write "(Type Y station)" and Y has to be a number. Matt Burch's already used 1-4 so it would be logical to make your station a type 5, right?
  342.  
  343.  
  344. ACKNOWLEDGMENT
  345.  
  346. Great thanks to Pontus Ilbring for his advice and participation.
  347. Thanks to Jim Byer to show us some mistakes.
  348. Feel free to send your comments, error reports or congratulations (why not?) to:
  349.                                     DYNA Systems                   dynasys@worldnet.fr